Computers and other processor-based devices receive and process user data. For example, users can compose a letter or email on a computer, call another person on a phone, or select an item for purchase from a vending machine. The fundamental undertaking is transferring a user's thoughts to a device, which can subsequently perform operations based thereon. User data can be provided to a computing device via one or more input devices including a keyboard, mouse, touchpad, touch screen and/or stylus and microphone. The keyboard or keypad is one of the most popular devices due at least to its ease of use, proven reliability, and lack of input ambiguity.
Input methods are software components that construe user operations with respect to input devices such as depression of keys, speaking into a microphone, or writing with a stylus, for instance to generate and provide text input to applications. With respect to a keyboard, characters are conventionally mapped one-to-one with keys for languages with small character sets such as English, Spanish, French and German. The input method therefore simply identifies a character based on selection of a key. For example, a letter “R” can be input by merely depressing the “R” key. However, languages such as Chinese, Japanese and Korean include hundreds and thousands of characters making the one-to-one key-character mapping impractical and impossible with conventional keyboards.
The input method alone or in conjunction with an editor can facilitate receipt of myriad of characters in East Asian languages and the like via a standard keyboard. For instance, characters can be received from the keyboard in a romanized form, and subsequently converted to an intended form. This requires users to memorize which keys correspond to which alternate language element, refer to a reference, and/or employ a modified standard keyboard with alternate language elements represented thereon. Conventionally, several characters are typed and converted in one chunk. Furthermore, conversion may have to be reattempted, as there may be several possible translations. For example, a candidate character(s) can be displayed in an editor as a user types, and the user can accept and/or select an intended translation. This process is known as composition, and the text that the input method receives and works on is called composed text. The process terminates when the user confirms the final conversion result and the text is committed.